package Queen;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author houfukude
 */
public class Queen2{
    public static void main(String[] args) throws IOException {
        int N;
        //
        System.out.println("input the N:");
        BufferedReader b = new BufferedReader(new InputStreamReader(System.in));
        N = Integer.parseInt(b.readLine());
        Queen2.Queen(N);
    }
    public static void Queen(int SIZE)//皇后数
    {
        int[] Queen = new int [SIZE];//用于记录每行皇后的位置 一共SIZE行
        int y,x,i,j,d,t=0;//X,Y可以看成是皇后的坐标
        y = 0;//第一列开始
        Queen[y] = -1;//第一列
        while( true )
        {
            for (x=Queen[y]+1; x<SIZE; x++)//
            {
                for (i=0;i<y;i++)
                {
                    j = Queen[i];//提取当前行皇后所在位置
                    d = y-i;//
                    if ((j==x)||(j==x-d)||(j==x+d))break;
                    //检查新皇后是否与以前的皇后能相互攻击
                }
                if (i>=y)break;//不攻击
            }
            if (x == SIZE)//没有合适的位置
            {
                if (0==y)//回朔到了第一行
                {
                    System.out.println("已完成～！");break; //结束
                }
                Queen[y]=-1;//回朔
                y--;
            }else{
                Queen[y]=x;//确定皇后的位置
                y++;//下一个皇后
                if (y<SIZE)
                    Queen[y]=-1;
                else{//所有的皇后都排完了，输出
                    System.out.println("\n" + ++t +':');
                    for(i=0;i<SIZE;i++)
                    {
                        for (j=0;j<SIZE;j++)
                            if(Queen[i] == j){
                                System.out.print("Q ");
                            }else{
                            System.out.print(". ");
                            }
                        System.out.println();
                    }
                    y = SIZE -1;//回朔
                }
            }
        }
    }
        
}


